from typing import Optional, Text

from rasa.exceptions import RasaException


class RasaCoreException(RasaException):
    """Rasa核心引发的错误的基异常。"""


class StoryParseError(RasaCoreException, ValueError):
    """在解析故事文件时发生错误时引发。"""

    def __init__(self, message) -> None:
        self.message = message


class UnsupportedDialogueModelError(RasaCoreException):
    """在模型太旧而无法加载时引发。

    Attributes:
        message -- 解释为什么模型无效
    """

    def __init__(self, message: Text, model_version: Optional[Text] = None) -> None:
        self.message = message
        self.model_version = model_version

    def __str__(self) -> Text:
        return self.message


class AgentNotReady(RasaCoreException):
    """如果有人尝试使用尚未准备好的代理，则引发异常。
    可能会创建一个代理，例如 没有附加解释器。
    但是，如果有人尝试与该代理解析消息，则会抛出此异常。"""

    def __init__(self, message: Text) -> None:
        self.message = message
